Integration platforms can be a factor in driving business agility, and the rise of software-as-a-service (SaaS), platform as a service (PaaS), cloud computing, and other distributed computing environments, has created new paradigms of integration.
The initial industry reaction has been to build point-to-point service-based integrations to help meet integration needs, in these and related contexts. Indeed, most (if not all) commercially available cloud integration offerings are based on synchronous execution of a point-to-point connection or orchestration flow. In this approach, each integration flow is customized for the implicated endpoints. As will be appreciated by those skilled in the art, an endpoint may be thought of in certain instances as being a representation of a point that can send and/or receive commands and data, e.g. as a service provider or in a message exchange, and examples include the Salesforce cloud product with its remote interfaces in the form of REST or SOAP services, common message processors like queues and topics in a publish/subscribe messaging model, etc.
As will be appreciated by those skilled in the art, integration systems often require a common set of information to be distributed across many disparate systems, which implies a many-to-many relationship between the systems that create the data and the systems that consume the data. Unfortunately, then, implementing these requirements by using a point-to-point integration pattern can result in a complex dependency network that is very difficult (if not impossible) to manage, maintain, and/or scale.
Certain example embodiments help address these and/or other concerns. For instance, certain example embodiments relate to systems and/or methods for cloud-based event-driven integration, which in essence inverts the current point-to-point integration pattern by using an event-driven system in its place (and/or overlaid thereon). Certain example embodiments transform and normalize integration patterns in connection with an underlying framework that helps decouple data producers from data consumers and advantageously allows additional systems to simply “plug into” the framework.
As will be appreciated from the more detailed description below, certain example embodiments help overcome current challenges in using event-driven integration techniques as a proper event routing framework “in the cloud.” Even despite the current technological perspective, it is difficult (if not impossible) to implement a commercially feasible multitenant event bus connected to a transformation engine with sufficient power. Certain example embodiments thus provide an effective event-driven integration solution for the cloud and/or other emerging technologies that is generic in nature (e.g., not specifically limited to the cloud) in which, for example, the ability to receive and transmit data with events aids in the routing of that data in a loosely-coupled manner.
In certain example embodiments, there is a provided a cloud-based event driven integration information processing system that facilitates loosely-coupled communications between a plurality of source computing systems and a plurality of sink computing systems. A multitenant-aware event channel (e.g., an event bus) is configured to receive events, with each received event having a predefined event type. A repository is configured to store event type definitions that include mappings indicating how metadata associated with data from the source computing systems relate to attributes in corresponding event types. Tenant-specific execution nodes are backed by processing resources including at least one processor and a memory, with the execution nodes being controlled by their respective processing resources to at least: receive data from a given source computing system; identify an event type definition from the repository based on the received data and the given source computing system's identity; based on the identified event type definition, generate from the received data an event of a corresponding event type; and send the generated event to the event channel. The event channel is further configured to selectively provide for the sink computing systems the received events.
In certain example embodiments, there is a provided a cloud-based event driven integration information processing system that facilitates loosely-coupled communications between a plurality of source computing systems and a plurality of sink computing systems. A multitenant-aware event channel is configured to selectively provide for the sink computing systems the received events, with each event having a predefined event type. A repository is configured to store event sink definitions that indicate how attributes associated with event types relate to metadata usable by respective sink computing systems. Processing resources, including at least one processor and a memory, are configured to at least: receive a given event having a given event type; identify an event sink definition from the repository based on the received event and the identity of the sink computing system that will process the data associated with the given event; based on the identified event sink definition, process the received event to extract its data and metadata in a form usable by the sink computing system that will process the data associated with the given event; and enable processing of the extracted data and/or metadata by the sink computing system that will process the data associated with the given event. The event channel is further configured to receive events including data and attributes, directly or indirectly, from the source computing systems.
In certain example embodiments, a method of managing a cloud-based event driven integration information processing system that facilitates loosely-coupled communications between a plurality of source computing systems and a plurality of sink computing systems is provided. The method includes providing: a multitenant-aware event channel configured to receive events, with each received event having a predefined event type; a first repository configured to store event type definitions that include mappings indicating how metadata associated with data from the source computing systems relate to attributes in corresponding event types; a second repository configured to store event sink definitions that indicate how attributes associated with event types relate to metadata usable by respective sink computing systems; and a plurality of tenant-specific execution nodes backed by first processing resources including at least one processor and a memory. The execution nodes are able to at least: receive data from a given source computing system; identify an event type definition from the repository based on the received data and the given source computing system's identity; based on the identified event type definition, generate from the received data an event of a corresponding event type; and send the generated event to the event channel. The event channel is further able to selectively provide for the sink computing systems the received events by at least: receiving a given event having a given event type; identifying an event sink definition from the repository based on the received event and the identity of the sink computing system that will process the data associated with the given event; based on the identified event sink definition, processing the received event to extract its data and metadata in a form usable by the sink computing system that will process the data associated with the given event; and enabling processing of the extracted data and/or metadata by the sink computing system that will process the data associated with the given event.
Non-transitory computer readable storage mediums tangibly storing instructions for performing the above-summarized and/or other approaches also are provided by certain example embodiments, as well as corresponding computer programs.
These features, aspects, advantages, and example embodiments may be used separately and/or applied in various combinations to achieve yet further embodiments of this invention.